/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package umlapp.elements.members;

import java.io.Serializable;
import umlapp.exception.UMLAppException;

/**
 *
 * Abstraktná tried pre všetky členy elementov class a interface.
 *
 * @author Peter Chovanec
 * @author Mario Jaros
 */
public abstract class AMember implements Serializable {

    /**
     * Meno člena.
     */
    private String name;
    /**
     * Viditeľnosť člena.
     */
    private Visibility visibility;
    /**
     * Dátový typ člena.
     */
    private String dataType;

    /**
     * Konštruktor triedy s tromi parametrami
     *
     * @param name meno
     * @param dataType dátový typ
     * @param visibility viditeľnosť
     * @throws UMLAppException
     */
    protected AMember(String name, String dataType, Visibility visibility) throws UMLAppException {
        if ((name == null) || (dataType == null) || (visibility == null)) {
            throw new UMLAppException();
        }
        this.name = name;
        this.dataType = dataType;
        this.visibility = visibility;
    }

    /**
     * @return meno
     */
    public String getName() {
        return name;
    }

    /**
     * @param name nastavuje meno
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return vracia viditeľnosť
     */
    public Visibility getVisibility() {
        return visibility;
    }

    /**
     * @param visibility nastavuje viditeľnosť
     */
    public void setVisibility(Visibility visibility) {
        this.visibility = visibility;
    }

    /**
     * @return vracia dátový typ
     */
    public String getDataType() {
        return dataType;
    }

    /**
     * @param dataType nastavuje dátový typ
     */
    public void setDataType(String dataType) {
        this.dataType = dataType;
    }
}
